// store.ts
import { createStore } from 'redux';
import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux';
import rootReducer, { RootState } from '../reducers';
 
// 创建 store，指定 RootState 类型
export const store = createStore(rootReducer);
 
// 导出 store 的 dispatch 类型（用于约束动作类型）
export type AppDispatch = typeof store.dispatch;
 
// 创建带类型的 useSelector 钩子（自动关联 RootState 类型）
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector;
 
// 创建带类型的 useDispatch 钩子（自动关联 AppDispatch 类型）
export const useAppDispatch = () => useDispatch<AppDispatch>();